#include "Col.ph"
#ifdef __GNUG__
#pragma implementation
#endif

#include "ProgEnv.h"

#include "Class.h"
#include "ClassManager.h"
#include "ObjectTable.h"
#include "ET_stdio.h"

SmartProgenv gProgEnv;

ProgEnv *SmartProgenv::make()
{
	if (pe == 0) {
		pe= (ProgEnv*) gClassManager->Load("etprogenv", "EtProgEnv");
		if (pe == 0)
			pe= new ProgEnv();
	}
	return pe;
}

//---- ProgEnv -----------------------------------------------------------------

NewMetaImpl0(ProgEnv, Object);

ProgEnv::ProgEnv()
{
}

void ProgEnv::Start()
{
	fprintf(stderr, "ET++PE not linked in\n");
}

void ProgEnv::EditSourceOf(class Class*, bool, int)
{
}

void ProgEnv::ShowInHierarchy(class Class*)
{
}

void ProgEnv::ShowInheritancePath(class Class*)
{
}

void ProgEnv::InspectObject(class Object*, bool)
{
}

void ProgEnv::InspectClick(class VObject*)
{
}

void ProgEnv::ShowInObjStruBrowser(class Object*)
{
}

char *ProgEnv::HasObjectView(Class *, void *, Object *)
{
	return 0;
}

void ProgEnv::ShowObjectView(Class*, void*, Object*, Object*)
{
}

void ProgEnv::AddObjectViewPolicy(ObjectViewPolicy *avh)
{
	SafeDelete(avh);
}

PathLookup *ProgEnv::Universe()
{
	return 0;
}

bool ProgEnv::FileOfClass(Class*, char*, bool)
{
	return FALSE;
}

//---- ObjectViewPolicy --------------------------------------------------------

NewAbstractMetaImpl0(ObjectViewPolicy, Object);

ObjectViewPolicy::ObjectViewPolicy()
{
}

char *ObjectViewPolicy::ViewName(Class*, void*, Object*)
{
	return 0;
}

bool ObjectViewPolicy::ShowView(Class*, void*, Object*, Object*)
{
	return FALSE;
}
